1. Field of the Invention
The invention relates to computing systems and, more particularly, to the management of threads in a multithreaded processing system.
2. Description of the Related Art
In a multithreaded processor, each thread may act as a separate physical processor. In such a processor, there must generally exist mechanisms by which each thread may be initialized, started, and/or stopped. Therefore, each thread must generally be configured to receive an initial indication to start executing, such as a reset or initialization indication. Once a thread begins executing, software may want to temporarily stop that thread. For example, in a system that has a very demanding power or heat threshold, threads may be idled to reduce power consumption or limit heat production. Alternatively, if a given thread requires exclusive use of the memory subsystem or some other shared resource, the other threads which are executing may be stopped temporarily.
In a multithreaded multicore processor, each core may be capable of executing multiple threads in hardware. As the cores of such a processor may generally be configured to act in a somewhat cooperative manner, threads in one core may affect the operation of threads in another core. Accordingly, as the number of cores and/or threads increase, the lines of communication between threads in the processor also increase, and mechanisms for controlling the threads may quickly become quite complex. However, as processor die area is generally always at a premium, and more complex mechanisms are more likely to have errors and be more difficult to verify, an efficient mechanism for controlling threads is desired.
Accordingly, an effective method and mechanism for initializing, starting, and stopping threads is desired.